/* Die Klasse ComboMediumSuchen implementiert 
 * die Verwaltung von combobox,die suche 
 * nach ein Medium zustaendig sind.
 * 
 * Datei: ComboMediumSuchen.java
 *        
 * Autor: Gregory Keussi
 * 
 * Datum: 16.12.11                 Version: 0.1 
 */

package suche;

public class ComboMediumSuchen
{

  private Aufsatzsuchen auf;
  private Buchsuchen buc;
  private Datentraegersuchen dat;
  private Ebooksuchen ebo;
  private Hoerbuchsuchen hoer;
  private Zeitschriftsuchen zeit;
  private MedienSortierung med;
  private int i, j;
  private String t;


  /*
   * Die Implementierung dem Konstruktor der Klasse ComboMediumSuchen .
   * Der Konstruktor nimmt 4 Parameter ein Objekt von typ
   * MedienSortierung 2 integer und ein String
   */

  public ComboMediumSuchen (MedienSortierung med, int i, int j, String t)
  {
    this.i = i;
    this.j = j;
    this.t = t;
    this.setzeMed (med);
    auf = new Aufsatzsuchen ();
    buc = new Buchsuchen ();
    dat = new Datentraegersuchen ();
    ebo = new Ebooksuchen ();
    hoer = new Hoerbuchsuchen ();
    zeit = new Zeitschriftsuchen ();

    auf.setzeMyAufsatzList (med.gibAufsatzList ());
    buc.setzeMyBuchList (med.gibBuchList ());
    dat.setzeMyDatentraegerList (med.gibDatentraegerList ());
    ebo.setzeMyEbookList (med.gibEbookList ());
    hoer.setzeMyHoerbuchList (med.gibHoerbuchList ());
    zeit.setzeMyZeitschriftList (med.gibZeitschriftList ());
  }


  /*
   * Die Methode verteiler bearbeitet mit der Hilfe eine Switch- case
   * schleife eine Liste von von einem bestimmten Mediumtyp.Und sie
   * nimmt kein parameter .Und liefert einen String zurueck.
   */

  public String verteiler ()
  {
    String s = " ";
    System.out.println ("i = " + i);
    System.out.println ("j = " + j);

    switch (i)
    {

    /*
     * Die case 0 aufruf die Method aufsatzSuchverwalter Die mthod
     * liefert eine List .Und mit der Methode ErgebnisTostring die Liste
     * wird in string uebersetzt.
     */

    case 0:
      auf.aufsatzSuchVerwalter (j, t);
      s = auf.ErgebnisToString (auf.gibErgebnis ());
      break;

    case 1:
      buc.BuchSuchVerwalter (j, t);
      s = buc.ErgebnisToString (buc.gibErgebnis ());
      break;

    case 2:
      dat.DatentraegerSuchVerwalter (j, t);
      s = dat.ErgebnisToString (dat.gibErgebnis ());
      break;

    case 3:
      ebo.EbookSuchVerwalter (j, t);
      s = ebo.ErgebnisToString (ebo.gibErgebnis ());
      break;

    case 4:
      hoer.HoerbuchSuchVerwalter (j, t);
      s = hoer.ErgebnisToString (hoer.gibErgebnis ());
      break;

    case 5:
      zeit.ZeitschriftSuchVerwalter (j, t);
      s = zeit.ErgebnisToString (zeit.gibErgebnis ());
      break;

    default:
      break;

    }

    return s;
  }


  public MedienSortierung gibMed ()
  {
    return med;
  }


  public void setzeMed (MedienSortierung med)
  {
    this.med = med;
  }
}